package main

import "fmt"

// 函数类型

func f1() {
	fmt.Println("Hello")
}

func f2() int {
	return 10
}

//函数也能作为参数的类型
func f3(x func()int)  {
	c := x()
	fmt.Println(c)
}

func ff(x, y int) int {
	return 1
}

// 函数也能作为返回值
func f4(x func() int) func(int, int)int {
	return ff
}


func main() {
	a := f1
	fmt.Printf("%T\n", a)
	b := f2
	fmt.Printf("%T\n", b())
	f3(b)
	// func()
	//  int
	c := f4(f2)
	fmt.Printf("%T", c)  //func(int, int) int

}
